import logging
import os

root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
log_dir = os.path.join(root_dir, 'Log')
if not os.path.exists(log_dir):
    os.mkdir(log_dir)


class Log:
    """日志类"""

    def log(self, model='business'):
        """日志输出方法"""
        logger = logging.getLogger(model)  # 日志接口
        logger.setLevel(logging.DEBUG)  # 日志记录信息的级别

        # 查看是否有这个日志文件，如果有则继续使用这个文件，没有则创建
        log_file = os.path.join(log_dir, 'Test.log')
        file_handler = logging.FileHandler(log_file, encoding='utf-8')
        # 设置日志输出的级别
        file_handler.setLevel(logging.DEBUG)  # 在文件中能看到的日志级别
        # 添加一个判断，当没有日志处理器的时候才创建处理器，有处理器就用已存在的处理器，防止日志消息重复输出
        if not logger.handlers:
            # 将日志同步输出到控制台
            stream_handler = logging.StreamHandler()
            stream_handler.setLevel(level=logging.DEBUG)

            # 设置日志输出的格式
            formatter = logging.Formatter("%(asctime)s - %(name)s - %(filename)s[line:%(lineno)d] - %(levelname)s:"
                                          " %(message)s")
            file_handler.setFormatter(formatter)
            stream_handler.setFormatter(formatter)

            logger.addHandler(file_handler)
            logger.addHandler(stream_handler)
        return logger  # 返回一个日志对象












